Methods and apparatus to provide a handheld pointer-based user interface

ABSTRACT

Methods and apparatus to provide a handheld pointer-based user interface are described herein. An example apparatus includes a wireless pointer component and one or more base components. The wireless pointer component is configured to transmit one or more human-computer interaction (HCI) signals associated with an HCI event via a first communication link. One or more base components are operatively coupled to a screen of a display to receive the one or more HCI signals from the wireless pointer component via the first communication link. Further, the one or more base components are configured to generate at least one of operating information and position information of the wireless pointer component based on the one or more HCI signals, and to transmit the at least one of operating information and position information to a processor configured to generate screen information on the screen of the display via a second communication link.

RELATED APPLICATION

This patent is a continuation of U.S. patent application Ser. No.10/697,672, filed on Oct. 29, 2003, entitled “Methods and Apparatus toProvide a Handheld Pointer-Based User Interface,” which is herebyincorporated herein in its entirety.

TECHNICAL FIELD

The present disclosure relates generally to user interfaces forprocessor systems, and more particularly, to methods and apparatus toprovide a handheld pointer-based user interface.

BACKGROUND

To provide greater convenience for individuals to use and interact withprocessor systems such as personal computers (PCs) (e.g., desktopcomputers, laptop computers, and tablet PCs) and handheld devices (e.g.,personal digital assistants (PDAs) and pocket PCs), efforts have beenmade to improve human-computer interactions (HCI). On tablet PCs andpocket PCs, for example, a user may write, draw, and/or perform anyother intuitive aspects of using pen and paper by using naturalhandwriting with a stylus or an electronic pen directly on the displayscreens. In fact, the user may use the stylus or the electronic peninstead a mouse and/or a keyboard to perform other computer functionssuch as inputting text, selecting and opening software applications,scrolling through documents, etc. The touch-sensitive screens allowusers to interact with the tablet PCs and the pocket PCs as describedabove. To provide touch-sensitive screens, typically one or more layersare built into the display screens of the tablet PCs and the pocket PCs.However, most displays and monitors for desktop computers and laptopcomputers do not include the built-in layers to provide thetouch-sensitive screen. As a result, most processor systems are notconfigured to provide individuals with a user interface using naturaland intuitive hand motion such as writing, drawing, etc. Further,touch-sensitive screens are costly to manufacture and inaccurate forlarger sized screens.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram representation of an example handheldpointer-based user interface (PUI) system.

FIG. 2 is a diagram representation of example position information ofthe example handheld PUI system shown in FIG. 1.

FIG. 3 is a timing diagram representation of example HCI signals of theexample handheld PUI system shown in FIG. 1.

FIG. 4 is a time diagram representation of other example HCI signals ofthe example handheld PUI system shown in FIG. 1.

FIG. 5 is a block diagram representation of an example architecturalhierarchy of the example handheld PUI system shown in FIG. 1.

FIG. 6 is a block diagram represent of an example system driver of theexample handheld PUI system shown in FIG. 1.

FIG. 7 is a schematic diagram representation of the example handheld PUIsystem shown in FIG. 1.

FIG. 8 is another schematic diagram representation of the examplehandheld PUI system shown in FIG. 1.

FIG. 9 is a flow diagram representation of example machine readableinstructions that may be executed to implement the example handheld PUIsystem shown in FIG. 1.

FIG. 10 is a flow diagram representation of example machine readableinstructions that may be executed to implement the example wirelesspointer component of the example handheld PUI system shown in FIG. 1.

FIG. 11 is a flow diagram representation of example machine readableinstructions that may be executed to implement the example basecomponent of the example handheld PUI system shown in FIG. 1.

FIG. 12 is a flow diagram representation of example machine readableinstructions that may be executed to implement the example processor ofthe example handheld PUI system shown in FIG. 1.

FIG. 13 is a block diagram representation of an example processor systemthat may used to implement the example handheld PUI system shown in FIG.1.

DETAILED DESCRIPTION

Although the following discloses example systems including, among othercomponents, software or firmware executed on hardware, it should benoted that such systems are merely illustrative and should not beconsidered as limiting. For example, it is contemplated that any or allof the disclosed hardware, software, and/or firmware components could beembodied exclusively in hardware, exclusively in software, exclusivelyin firmware or in some combination of hardware, software, and/orfirmware.

In the example of FIG. 1, the illustrated handheld PUI system 100includes a handheld PUI device 110, a processor 120, and a display 130.The handheld PUI device 110 includes a wireless pointer component 140and one or more base components 150. The wireless pointer component 140is operatively coupled to the one or more base components 150 via afirst communication link 160 (e.g., a wireless link such as anultrasound-based link). The one or more base components 150 areoperatively coupled to the processor 120 via a second communication link170 (e.g., a wired link and/or a wireless link such as a radiofrequency-based link). In general and as described in detail below, thehandheld PUT device 110, which may be implemented using a pen-typedevice, is responsive to human-computer interaction (HCI) eventscorresponding to hand motion of a user such as writing, drawing,selecting, scrolling, etc. For example, a user may initiate an HCI eventby writing directly on the screen 132 of the display 130 with thewireless pointer component 140. The wireless pointer component 140 maytransmit one or more HCI signals to the one or more base components 150via the first communication link 160. Based on the one or more HCIsignals, the one or more base components 150 generate and transmitposition information to the processor 120 via the second communicationlink 170. Accordingly, the processor 120 generates screen informationcorresponding to the HCI event on the screen 132 of the display 130.Thus, the screen information appears on the screen 132 as if the screeninformation were handwritten directly on the screen 132 by the user. Asa result, the handheld PUT device 110 provides an alternative userinterface especially for individuals who may have difficultymanipulating a mouse and/or a keyboard to interact with the processor120. Further, the handheld PUT device 110 provides a user interfacebased on natural and intuitive hand motion of the user so that thescreen 132 may operate touch screen-like but without integrating costlytouch-screen technology into the display 130.

The wireless pointer component 140 includes a detecting unit 142 and atransmitting unit 144, which is operatively coupled to the detectingunit 142. The detecting unit 142 is configured to detect an HCI eventand to trigger the transmitting unit 144. In one particular example, thedetecting unit 142 may be a switch configured to detect when thewireless pointer component 140 has been placed on the screen 132 of thedisplay 130. As mentioned above, the HCI event is initiated by a user.For example, the HCI event may correspond to hand motion of a user suchas writing, drawing, selecting, scrolling, etc. The transmitting unit144 is configured to transmit one or more HCI signals such as ultrasonicsignals via the first communication link 160. While the one or more HCIsignals of the handheld PUI device 110 shown in FIG. 1 is particularlywell suited for implementation with ultrasonic signals, persons ofordinary skill in the art will readily appreciate that the one or moreHCI signals may be implemented with radio frequency (RF) signalsincluding infrared, microwaves, and ultra-high-frequency (UHF).

As noted above, the base component 150 is configured to generateposition information of the wireless pointer component 140 based on theone or more HCI signals from the wireless pointer component 140. In oneparticular example, the base component 150 includes a receiving unit152, a processing unit 154, and a transmitting unit 156. The receivingunit 152 is configured to receive the one or more HCI signals from thetransmitting unit 144 of the wireless pointer component 140. In theexample of FIG. 2, the receiving unit 152 is generally shown as beingimplemented using a first sensor 252 and a second sensor 254. Forexample, the first and second sensors 252, 254 may be ultrasound sensorsseparated by a distance of 2d. The transmitting unit 144 of the wirelesspointer component 140 is located at Point 1 210 with coordinate (x1,y1), which is away from the first sensor 452 by a first distance L1 andaway from the second sensor 454 by a second distance L2.

When the wireless pointer component 140 is triggered (e.g., the tip 642of FIG. 6 is pressed on the screen 632 of the display 630), thetransmitting unit 144 of the wireless pointer component 140 transmitsone or more ultrasonic signals to the first and second sensors 252, 254of the base component 150. The one or more ultrasonic signals from thetransmitting unit 144 reaches the first and second sensors 252, 254 atdifferent times because the first and second distances L1, L2 betweenthe transmitting unit 144 and the first and second sensors 252, 254,respectively, are different. Persons of ordinary skill in the art willreadily appreciate that the base component 150 detects the timedifference between receiving the one or more ultrasonic signals from thetransmitting unit 144 via the first and second distances L1, L2.

The processing unit 154 is operatively coupled to the receiving unit152. In response to the receiving unit 152 detecting the one or moreultrasonic signals, the processing unit 154 is configured to generateposition information of the wireless pointer component 140 by convertingto distance from time and speed of propagation of the one or moreultrasonic signals. In one particular example, the processing unit 154calculates the first and second distances L1, L2 for the processor 120to calculate the coordinate (x, y) of the transmitting unit 144 asdescribed in detail below.

The transmitting unit 156 is operatively coupled to the processing unit154. Further, the transmitting unit 156 is configured to transmit theposition information generated by the processing unit 154 to theprocessor 120 via the second communication link 170 so that theprocessor 120 may generate screen information corresponding to the HCIevent on the screen 132 of the display 130.

As the wireless pointer component 140 moves from Point 1 210 atcoordinate (x1, y1) to Point 2 220 at coordinate (x2, y2) and then toPoint 3 230 at coordinate (x3, y3), the first and second sensors 252,254 receives the one or more ultrasonic signals from the transmittingunit 144 of the wireless pointer component 140 at different times. Inthe example of FIG. 3, the transmitting unit 144 transmits a first HCIsignal 310 at Point 1 210 from time t0 until time t2. The first sensor252 detects the first HCI signal 310 starting from time t1 whereas thesecond sensor 254 detects the first HCI signal 310 starting from timet2, which is later than time t1, because the first sensor 252 is closerto Point 1 210 than the second sensor 254 (i.e., the first sensor 252receives the first HCI signal 310 before the second sensor 254). Thetransmitting unit 144 stops transmission from time t2 to time t3, andthen starts transmission again at time t3. When the transmitting unit144 transmits a second HCI signal 320 at Point 2 220 from time t3 untiltime 5, both the first and second sensors 252, 254 detect the second HCIsignal 320 simultaneously at time t4 because the first and secondsensors 252, 254 are equidistant from Point 2 220. The transmitting unit144 stops transmission from time t5 to time t6, and then startstransmission again at time t6. When the transmitting unit 144 transmitsa third HCI signal 330 at Point 3 230 from time t6 until time t9, thesecond sensor 254 detects the third HCI signal 330 at time t7 whereasthe first sensor 252 detects the third HCI signal 330 at time t8, whichis later than time t7, because the second sensor 254 is closer to Point3 230 than the first sensor 252 (i.e., the second sensor 254 receivesthe HCI signal 330 before the first sensor 252).

Alternatively, the transmitting unit 144 may encode the one or more HCIsignals before transmission. In the example of FIG. 4, the transmittingunit 144 encodes a first HCI signal 410 and transmits the first HCIsignal 410 from Point 1 210 at time t0. The first sensor 252 detects thefirst HCI signal 410 at time t1 whereas the second sensor 254 detectsthe first HCI signal 410 at time t2 because the first sensor 252 iscloser to Point 1 210 than the second sensor 254. As the wirelesspointer component 140 moves toward Point 2 220, the transmitting unit144 encodes a second HCI signal 420 with a code different than that ofthe first HCI signal 410 so that the first and second sensors 252, 254may identify the second HCI signal 420 as a different signal to detectthe time of receipt to calculate the coordinate of Point 2 220. At timet3, the transmitting unit 144 transmits the second HCI signal 420, andboth the first and second sensors 252, 254 detect the second HCI signal420 at the same time (i.e., time t4) because the first and secondsensors 252, 254 are equidistant from Point 2 220. At time t5, thetransmitting unit 144 transmits a third HCI signal 430 from Point 3 230.Likewise, the transmitting unit 144 encodes the third HCI signal 430with a code different than that of the first and second HCI signals 410,420. The second sensor 254 detects the third HCI signal 430 at time t6whereas the first sensor 252 detects the third HCI signal 430 at time t7because the second sensor 254 is closer to Point 3 230.

Further, the handheld PUI device 110 may be operate in a hover mode. Inparticular, the transmitting unit 144 of the wireless pointer component140 may continuously transmit one or more HCI signals without beingtriggered by the detecting unit 142 (e.g., without the tip 642 of FIG. 6being pressed on the screen 632 of the display 630). The base component150 may receive the HCI signal, generate position information based onthe HCI signal, and transmit the position information to the processor120 as described above. In addition to operating in a write mode asdescribed in detail above, the handheld PUI device 110 may also operatein other modes such as an erase mode, select mode, scroll mode, etc. bypressing a button (e.g., the buttons 644 and 744 shown in FIGS. 6 and 7,respectively) on the wireless pointer component 140 to toggle betweenthe different operating modes. Persons of ordinary skill in the art willreadily appreciate that other methods in addition to a button-basedsystem may be implemented on the handheld PUI device 110 to switch fromdifferent operating modes such as a level-based system, a knob-basedsystem, a voice recognition-based system, etc.

While components shown in FIG. 1 are depicted as separate blocks withinthe handheld PUI device 110, the functions performed by some of theseblocks may be integrated within a single semiconductor circuit or may beimplemented using two or more separate integrated circuits. For example,although the receiving unit 152 and the transmitting unit 156 aredepicted as separate blocks within the base component 150, persons ofordinary skill in the art will readily appreciate that the receivingunit 152 and the transmitting unit 156 may be integrated within a singlesemiconductor circuit.

In the example of FIG. 5, the illustrated architectural hierarchy 500 ofthe handheld PUI system 100 includes hardware 510, one or more drivers520, and one or more applications 530. The PUI firmware 512 of thehardware 510 (i.e., the wireless pointer component 140 and/or the basecomponent 150) transmits position information to the processor 120through a universal serial bus (USB) port via the second communicationlink 170. To generate screen information (e.g., writing and/or drawing)on the display 130, the drivers 520 and applications 530 of theprocessor 120 process the position information from the firmware 510.The USB drivers 522 map the physical bus transactions to USB transfers.The human input device (HID) mini-driver 524 uses the USB transfers toaccess configuration and data information from the USB drivers 522(e.g., USB device descriptor, report descriptor, input and outputreport, etc.). To construct the HID collection (i.e., a USB logicdevice), the HID mini-driver 524 passes the configuration and datainformation to the HID drivers 526. Typically, the HID drivers 526 areconfigured to provide an interface between a bus driver (e.g., the USBdrivers 522) and an interactive input device (e.g., the hardware 510).As described in detail below, the system driver 528 is configured as afilter and/or an adaptor to convert data of the USB logic device to therequired format of PUI-based applications 532. For example, the systemdriver 528 may be a Tablet PC driver configured to convert data of theUSB logic device to the required format of Microsoft® Windows® XP TabletPC Edition. The PUI-based applications 532 receive the data from the PUIfirmware 512 and responds accordingly. Thus, the system driver 528configures the handheld PUI device 140 to provide a non-applicationspecific user interface to any applications of the processor 120.

In the example of FIG. 6, the illustrate Tablet PC driver 610 convertsPUI device information 620 from the HID drivers 526 to PUI-basedapplication information 630 for the PUI-based applications 532. The HIDdrivers 526 may provide PUI device information 620 such as triggerinformation, position information, temperature information, error code,and/or a package identifier to the Tablet PC driver 610. The triggerinformation indicates the status of the tip, button(s), etc. on thewireless pointer component 140. For example, the trigger information maybe a 3-bit field indicating status of the tip 742, the button 744, and auser-defined button (not shown) on the wireless pointer component 740shown in FIG. 7. The position information indicates distances L1 and L2(i.e., the traveling time of the one or more HCI signals from thetransmitting unit 144 of the wireless pointer component 140 to the firstand second sensors 252, 254 of the one or more base components 150). Thetemperature information is used to compensate sound speed in calculatingthe screen information as described below. The error code indicatespotential error of the one or more HCI signals. The packet identifierindicates a sequence of the frame of the one or more HCI signals.

The Tablet PC driver 610 includes configuration information 612 and adata filter 614. The configuration information 612 may includeinformation such as size information of the screen 132, base componentposition information of the one or more base components 150 (e.g.,mounting location of the one or more base components 150), and/oroptimizing algorithms to improve consistency of incoming data. Thescreen size information indicates the size of the screen 132 such as15-inch, 17-inch, 19-inch, or any other suitable size of a display. Thebase component position information indicates the mounting location ofthe one or more base components 150 on or proximate to the display 130.For example, the base component position information may indicate whichside(s) of the display 130 and offset(s) in x- and/or y-direction(s).

Based on the configuration information, the data filter 614 generatesPUI-based application information 630. The PUI-based applicationinformation 630 is in a format recognized by the OS 640 such asMicrosoft® Windows® XP Tablet PC Edition (i.e., the PUI deviceinformation 620 is not detected and/or recognized by the OS 640). Forexample, the PUI-based application 630 may include trigger information,screen information, pressure information, and/or tilt information. Thetrigger information indicates the status of the wireless pointercomponent 140. For example, the trigger information may indicate thestatus of the tip 742, a barrel button (e.g., a secondary buttoncorresponding to “right-click”), write/erase mode (i.e., whether thewireless pointer component 140 is operating to write or to erase),calibration (i.e., whether the wireless pointer component 140 isupside-down or right-side up for the erase mode), and range (i.e.,whether the wireless pointer component 140 is in range of the one ormore base components 150). The screen information includes x-ycoordinate(s) of the wireless pointer component 140 relative to one ormore locations of the screen 132 such as the upper-left corner,upper-right corner, lower-left corner, lower-right corner, and/or centerof the screen 132. For example, the data filter 614 may calculate thecoordinate (x, y) of the transmitting unit 144 in the wireless pointercomponent 140 based on the following:

x=(L1² −L2²)/4d, and

y=√(L2²−((L1² −L2²−4d ²)/4d)²).

The pressure information indicates the weight of the HID event. Forexample, a line drawn by a user may be light than another drawn line ifthe pressure information indicates a greater weight for the latter. Thetilt information indicates the angle of the HID event. As a result, theTablet PC driver 610 configures the handheld PUI device 140 to operatein any applications managed by the OS 640.

For example, the handheld PUT device 110 may be implemented on a desktopcomputer using a device such as a stylus or a pen. In the example ofFIG. 7, the illustrated desktop computer 700 includes a processor 720and a display 730 (i.e., a monitor), which are separate componentsoperatively coupled together as persons of ordinary skill in the artwill readily recognize. The display 730 may be a cathode ray tube (CRT)display, a liquid crystal display (LCD), a light-emitting diode (LED)display, a plasma display, and/or any other suitable image projectiondisplay. As described in detail below, the wireless pointer component740 may be a stylus or an electronic pen configured to transmit one ormore HCI signals (e.g., ultrasonic signals) based on an HCI eventinitiated by a user on the screen 732 of the display 730 to one or morebase components 750 via the first communication link 760. For example,the user may use the wireless pointer component 740 to write “HelloWorld” 780 directly on the screen 732 of the display 730. Accordingly,the wireless pointer component 740 transmits one or more HCI signalswhile the user is writing “Hello World” 780. One or more base components750 are disposed in fixed positions relative to the screen 732 of thedisplay 730 to receive the one or more HCI signals from the wirelesspointer component 740. For example, one or more base components 750 maybe disposed on or proximate to the screen 732 of the display 730. Basedon the one or more HCI signals, the one or more base components 750 areconfigured to generate and transmit position information of the wirelesspointer component 740 to the processor 720 via the second communicationlink 770. Accordingly, the processor 720 generates screen informationcorresponding to the HCI event on the screen 732 of the display 730. Forexample, the processor 720 converts the position information from theone or more base components 750 into pixels. Thus, the processor 720generates “Hello World” 780 as one or more pixels on the screen 732 ofthe display 730 to appear as if the user had wrote “Hello World”directly on the screen 732.

While components shown in FIG. 7 are depicted as separate blocks withinthe desktop computer 700, the functions performed by some of theseblocks may be integrated within a single semiconductor circuit or may beimplemented using two or more separate integrated circuits. For example,although the processor 720 and the display 730 are depicted as separateblocks within the desktop computer 700, persons of ordinary skill in theart will readily appreciate that the processor 720 and the display 730may be integrated within a single unit such as a tablet PC and/or alaptop (e.g., the laptop 800 of FIG. 8).

In the example of FIG. 8, the illustrated laptop computer 800 includes aprocessor 820 and a display 830. The processor 820 is operativelycoupled to the display 830 as persons of ordinary skill in the art willreadily recognize. The wireless pointer component 840 may be a stylus oran electronic pen configured to transmit one or more HCI signals basedon an HCI event initiated by a user on the screen 832 of the display 830to one or more base components 850 via the first communication link 860.The one or more base components 850 are disposed relative to the screen832 of the display 830 to receive the one or more HCI signals from thewireless pointer component 840. Based on the one or more HCI signals,the one or more base components 850 are configured to generate andtransmit position information to the processor 820 via the secondcommunication link 870. For example, the second communication link 870may be a wireless link operating in accordance with an 802.11communication protocol developed by the Institute of Electrical andElectronics Engineers (i.e., the IEEE 802.11 standard, IEEE std.802.11-1997, published 1997), a Bluetooth communication protocol, and/oran infrared communication protocol developed by the Infrared DataAssociation. Accordingly, the processor 820 generates screen informationcorresponding to the HCI event on the screen 832 of the display 830.Thus, the processor 820 generates “Hello World” 880 as one or morepixels on the screen 832 of the display 830 to appear as if the user hadwrote “Hello World” directly on the screen 832.

A flow diagram 900 representing machine readable instructions that maybe executed by a processor to provide a handheld pointer-based userinterface is illustrated in FIG. 9. Persons of ordinary skill in the artwill appreciate that the instructions may be implemented in any of manydifferent ways utilizing any of many different programming codes storedon any of many computer-readable mediums such as a volatile ornonvolatile memory or other mass storage device (e.g., a floppy disk, aCD, and a DVD). For example, the machine readable instructions may beembodied in a machine-readable medium such as an erasable programmableread only memory (EPROM), a read only memory (ROM), a random accessmemory (RAM), a magnetic media, an optical media, and/or any othersuitable type of medium. Alternatively, the machine readableinstructions may be embodied in a programmable gate array and/or anapplication specific integrated circuit (ASIC). Further, although aparticular order of actions is illustrated in FIG. 9, persons ofordinary skill in the art will appreciate that these actions can beperformed in other temporal sequences. Again, the flow diagram 900 ismerely provided as an example of one way to provide a handheldpointer-based user interface.

The flow diagram 900 includes a wireless pointer component block 910, abase component block 920, and a processor block 930. In particular, theflow diagram 800 begins with the wireless pointer component block 910 ofthe wireless pointer component 140 to detect an HCI event initiated by auser on the screen 132 of the display 130. In one particular example asshown in FIG. 10, the wireless pointer component 140 may determinewhether the detecting unit 142 is switched on (block 912). For example,the user may press the tip 742 of the wireless pointer component 740 towrite and/or draw directly on the screen 732 of the display 730. If thedetecting unit 142 is switched on then the transmitting unit 144transmits an HCI signal corresponding to the location of the wirelesspointer component 140 to the one or more base component 150 via thefirst communication link 160 (block 914). For example, the wirelesspointer component 140 may transmit an ultrasonic signal based on handmotion of the user on the screen 132 of the display 130. After a timeperiod, transmitting unit 144 then stops the transmission (block 916),and controls return to block 912. Otherwise, if the detecting unit 142is switched off (i.e., the tip 742 is not depressed onto the screen 732of the display 730), controls proceed to determine whether the user mayswitch between different operating modes via the button 244 (block 918).Thus, the user may also use the wireless pointer component 240, forexample, to select and/or scroll through a document displayed on thescreen 232 of the display 230. If the wireless pointer component 140 isused to other operating modes then the transmitting unit 144 transmitsthe HCI signal (block 914) and stops the transmission after a timeperiod (block 916), and then controls return to block 912. If thewireless pointer component 140 is not used for other operating modesthen controls directly return to block 912.

Each of the one or more base components 150 is configured to execute thebase component block 920. In the example of FIG. 11, each of the one ormore base components 150 determines whether the first and second sensors252, 254 of the receiving unit 152 received an HCI signal (block 922).If the first and second sensors 252, 254 received the HCI signal, theprocessing unit 154 determines the time difference between receipt ofthe HCI signal by the first and second sensors 252, 254 (block 924).Based on the time difference, the processing unit 154 generates positioninformation associated with the wireless pointer component 140 (block926). For example, the processing unit 154 may calculate one or morecoordinates of the wireless pointer component 140 relative to the screen132 of the display 130. The transmitting unit 156 of the one or morebase components 150 then exports the position information to theprocessor 120 via the second communication link 170 (block 928).Otherwise, if the first and second sensors 252, 254 did not receive theHCI signal, controls directly return to block 922.

In the example of FIG. 12, the processor 120 executes the processorblock 930 by processing the position information exported from the oneor more base components 150. The processor 120 converts the positioninformation into screen information (block 932) and generates the screeninformation on the screen 132 of the display 130 (block 934). Forexample, the one or more drivers 520 convert each coordinate of thewireless pointer component 140 into one or more pixels and notify theoperating system (OS) of the processor 120 (e.g., Microsoft® Windows® XPTablet PC Edition) of the corresponding display format. The OS providesa notification of the corresponding display format to the one or moreapplications 530 and waits for a response to the notification from theone or more applications 530. Thus, the handheld PUI device 110 providesan alternative user interface to the mouse and/or the keyboard that isbased on natural and intuitive hand motion of the user withoutintegrating costly touch-screen technology into the display 130.

FIG. 13 is a block diagram of an example processor system 1000 adaptedto implement the methods and apparatus disclosed herein. The processorsystem 1000 may be a desktop computer, a laptop computer, a notebookcomputer, a personal digital assistant (PDA), a server, an Internetappliance or any other type of computing device.

The processor system 1000 illustrated in FIG. 13 includes a chipset1010, which includes a memory controller 1012 and an input/output (I/O)controller 1014. As is well known, a chipset typically provides memoryand I/O management functions, as well as a plurality of general purposeand/or special purpose registers, timers, etc. that are accessible orused by a processor 1020. The processor 1020 is implemented using one ormore processors. For example, the processor 1020 may be implementedusing one or more of the Intel® Pentium® family of microprocessors, theIntel® Itanium® family of microprocessors, Intel®Centrino® family ofmicroprocessors, and/or the Intel XScale® family of processors. In thealternative, other processors or families of processors may be used toimplement the processor 1020. The processor 1020 includes a cache 1022,which may be implemented using a first-level unified cache (L1), asecond-level unified cache (L2), a third-level unified cache (L3),and/or any other suitable structures to store data as persons ofordinary skill in the art will readily recognize.

As is conventional, the memory controller 1012 performs functions thatenable the processor 1020 to access and communicate with a main memory1030 including a volatile memory 1032 and a non-volatile memory 1034 viaa bus 1040. The volatile memory 132 may be implemented by SynchronousDynamic Random Access Memory (SDRAM), Dynamic Random Access Memory(DRAM), RAMBUS Dynamic Random Access Memory (RDRAM), and/or any othertype of random access memory device. The non-volatile memory 1034 may beimplemented using flash memory, Read Only Memory (ROM), ElectricallyErasable Programmable Read Only Memory (EEPROM), and/or any otherdesired type of memory device.

The processor system 1000 also includes an interface circuit 1050 thatis coupled to the bus 1040. The interface circuit 1050 may beimplemented using any type of well known interface standard such as anEthernet interface, a universal serial bus (USB), a third generationinput/output interface (3GIO) interface, and/or any other suitable typeof interface.

One or more input devices 1060 are connected to the interface circuit1050. The input device(s) 1060 permit a user to enter data and commandsinto the processor 1020. For example, the input device(s) 1060 may beimplemented by a keyboard, a mouse, a touch-sensitive display, a trackpad, a track ball, an isopoint, and/or a voice recognition system.

One or more output devices 1070 are also connected to the interfacecircuit 1050. For example, the output device(s) 1070 may be implementedby display devices (e.g., a light emitting display (LED), a liquidcrystal display (LCD), a cathode ray tube (CRT) display, a printerand/or speakers). The interface circuit 1050, thus, typically includes,among other things, a graphics driver card.

The processor system 1000 also includes one or more mass storage devices1080 configured to store software and data. Examples of such massstorage device(s) 1080 include floppy disks and drives, hard diskdrives, compact disks and drives, and digital versatile disks (DVD) anddrives.

The interface circuit 1050 also includes a communication device such asa modem or a network interface card to facilitate exchange of data withexternal computers via a network. The communication link between theprocessor system 1000 and the network may be any type of networkconnection such as an Ethernet connection, a digital subscriber line(DSL), a telephone line, a cellular telephone system, a coaxial cable,etc.

Access to the input device(s) 1060, the output device(s) 1070, the massstorage device(s) 1080 and/or the network is typically controlled by theI/O controller 1014 in a conventional manner. In particular, the I/Ocontroller 1014 performs functions that enable the processor 1020 tocommunicate with the input device(s) 1060, the output device(s) 1070,the mass storage device(s) 1080 and/or the network via the bus 1040 andthe interface circuit 1050.

While the components shown in FIG. 13 are depicted as separate blockswithin the processor system 1000, the functions performed by some ofthese blocks may be integrated within a single semiconductor circuit ormay be implemented using two or more separate integrated circuits. Forexample, although the memory controller 1012 and the I/O controller 1014are depicted as separate blocks within the chipset 1010, persons ofordinary skill in the art will readily appreciate that the memorycontroller 1012 and the I/O controller 1014 may be integrated within asingle semiconductor circuit.

The methods and apparatus disclosed herein are well suited for desktopcomputers, laptop computers, tablet PCs, etc. However, persons ofordinary skill in the art will appreciate that the teachings of thedisclosure may be applied to other processor systems such as portableand/or handheld devices including personal digital assistants, pocketPCs, cellular telephones, etc.

Although certain example methods, apparatus, and articles of manufacturehave been described herein, the scope of coverage of this patent is notlimited thereto. On the contrary, this patent covers all methods,apparatus, and articles of manufacture fairly falling within the scopeof the appended claims either literally or under the doctrine ofequivalents.

1. An apparatus comprising: a wireless input device coupled to aninteractive application, the wireless input device enabling a user toperform motions on objects displayed on a display device by theinteractive application by performing the motions using the wirelessinput device, the wireless input device transmitting the motions ashuman-computer interaction (HCI) signals to the interactive application;and a processing unit operatively coupled to the wireless input deviceand the display device, the processing unit executing the interactiveapplication, the processing unit receiving the HCI signals from thewireless input device and utilizing the HCI signals to duplicate themotions on the objects displayed on the display device by theinteractive application.
 2. The apparatus of claim 1, wherein the HCIsignals represent at least one of writing, drawing, selecting, andscrolling directly on the display device with the wireless input device.3. The apparatus of claim 1, wherein the HCI signals are transmitted inresponse to at least one of pressing a tip of the wireless input deviceon the display device and pressing a button of the wireless inputdevice.
 4. The apparatus of claim 1, wherein the wireless input devicecomprises at least one of a stylus and an electronic pen.
 5. Theapparatus of claim 1 wherein the processing unit comprises at least oneof a desktop computer, a laptop computer, and a handheld computer. 6.The apparatus of claim 1, wherein the display device comprises at leastone of a cathode ray tube (CRT) display, a liquid crystal display (LCD),a light-emitting diode (LED) display, and a plasma display.
 7. Theapparatus of claim 1, wherein the HCI signals are transmitted to theinteractive application in accordance with at least one of a an802.11-based communication protocol, a Bluetooth-based communicationprotocol, and an infrared-based communication protocol.
 8. The apparatusof claim 1, wherein the HCI signals comprises at least one of anultrasonic signal and a radio frequency signal.
 9. A method comprising:enabling a user to perform motions on objects displayed on a displaydevice by an interactive application by performing the motions using awireless input device coupled to the interactive application;transmitting the motions as human-computer interaction (HCI) signalsfrom the wireless input device to the interactive application; andreceiving the HCI signals from the wireless input device and utilizingthe HCI signals to duplicate the motions on the objects displayed on thedisplay device by the interactive application.
 10. The method of claim9, wherein transmitting the motions as HCI signals comprisestransmitting the motions as HCI signals in response to at least one ofwriting, drawing, selecting, and scrolling directly on the displaydevice with the wireless input device.
 11. The method of claim 9,wherein transmitting the motions as HCI signals comprises transmittingthe motions as HCI signals in response to at least one of pressing a tipof the wireless input device on the display device and pressing a buttonof the wireless input device.
 12. The method of claim 9, whereintransmitting the motions as HCI signals comprises transmitting themotions as HCI signals in accordance with at least one of a an802.11-based communication protocol, a Bluetooth-based communicationprotocol, and an infrared-based communication protocol.
 13. The methodof claim 9, wherein transmitting the motions as HCI signals comprisestransmitting the motions as at least one of an ultrasonic signal and aradio frequency signal.
 14. A machine readable medium storinginstructions, which when executed, cause a machine to: enable a user toperform motions on objects displayed on a display device by aninteractive application by performing the motions using a wireless inputdevice coupled to the interactive application; transmit the motions ashuman-computer interaction (HCI) signals from the wireless input deviceto the interactive application; and receive the HCI signals from thewireless input device and utilize the HCI signals to duplicate themotions on the objects displayed on the display device by theinteractive application.
 15. The machine readable medium of claim 14,wherein the instructions cause the machine to transmit the motions asHCI signals in response to at least one of writing, drawing, selecting,and scrolling directly on the display device with the wireless inputdevice.
 16. The machine readable medium of claim 14, wherein theinstructions cause the machine to transmit the motions as HCI signals inresponse to at least one of pressing a tip of the wireless input deviceon the display device and pressing a button of the wireless inputdevice.
 17. The machine readable medium of claim 14, wherein theinstructions cause the machine to transmit the motions as HCI signals inaccordance with at least one of a an 802.11-based communicationprotocol, a Bluetooth-based communication protocol, and aninfrared-based communication protocol.
 18. The machine readable mediumof claim 14, wherein the instructions cause the machine to transmit themotions as at least one of an ultrasonic signal and a radio frequencysignal.